<ExtensionModel>

	<Runtime>
		<Import assembly="MonoDevelop.PackageManagement.dll" />
		<Import assembly="Microsoft.Web.XmlTransform.dll" />
		<Import assembly="NuGet.Packaging.dll" />
		<Import assembly="NuGet.Frameworks.dll" />
		<Import assembly="NuGet.Versioning.dll" />
		<Import assembly="NuGet.Commands.dll" />
		<Import assembly="NuGet.LibraryModel.dll" />
		<Import assembly="NuGet.Common.dll" />
		<Import assembly="NuGet.Protocol.dll" />
		<Import assembly="NuGet.Configuration.dll" />
		<Import assembly="NuGet.ProjectModel.dll" />
	</Runtime>

	<Extension path = "/MonoDevelop/Ide/Commands">
		<Category _name = "NuGet" id = "NuGet">
		<Command
			id = "MonoDevelop.PackageManagement.Commands.AddPackages"
			_description = "Add NuGet packages to the project"
			_label = "Add NuGet _Packages..."
			defaultHandler = "MonoDevelop.PackageManagement.Commands.AddPackagesHandler" />
		<Command
			id="MonoDevelop.PackageManagement.Commands.ManageNuGetPackages"
			_description="Manage packages for the solution"
			_label="_Manage NuGet Packages..."
			_displayName="Manage Packages (Solution)"
			defaultHandler="MonoDevelop.PackageManagement.ManagePackagesHandler" />
		<Command
			id="MonoDevelop.PackageManagement.Commands.ManageNuGetPackagesInProject"
			_description="Manage packages for the project"
			_label="_Manage NuGet Packages..."
			_displayName="Manage Packages"
			defaultHandler="MonoDevelop.PackageManagement.ManagePackagesInProjectHandler" />
		<Command
			id = "MonoDevelop.PackageManagement.Commands.RestorePackages"
			_description = "Restore all missing packages in the solution"
			_label = "_Restore NuGet Packages"
			_displayName = "Restore Packages (Solution)"
			defaultHandler = "MonoDevelop.PackageManagement.Commands.RestorePackagesHandler" />
		<Command
			id="MonoDevelop.PackageManagement.Commands.Restore"
			_description="Restore missing packages"
			_label="_Restore"
			_displayName = "Restore Packages"
			defaultHandler="MonoDevelop.PackageManagement.Commands.RestorePackagesInProjectHandler" />
		<Command
			id="MonoDevelop.PackageManagement.Commands.PackageReferenceNodeCommands.ReinstallPackage"
			_description="Retarget selected package"
			_label="Re_target"
			_displayName="Retarget Package" />
		<Command
			id="MonoDevelop.PackageManagement.Commands.PackageReferenceNodeCommands.UpdatePackage"
			_description="Update selected package"
			_label="_Update"
			_displayName="Update Package" />
		<Command
			id="MonoDevelop.PackageManagement.Commands.UpdateAllPackagesInProject"
			_description="Update all packages"
			_label="_Update"
			_displayName="Update All Packages"
			defaultHandler="MonoDevelop.PackageManagement.Commands.UpdateAllPackagesInProjectHandler" />
		<Command
			id="MonoDevelop.PackageManagement.Commands.UpdateAllPackagesInSolution"
			_description="Update all packages in the solution"
			_label="_Update NuGet Packages"
			_displayName="Update All Packages (Solution)"
			defaultHandler="MonoDevelop.PackageManagement.Commands.UpdateAllPackagesInSolutionHandler" />
		<Command
			id="MonoDevelop.PackageManagement.Commands.PackagesFolderNodeCommands.ReinstallAllPackagesInProject"
			_description="Retargets all packages"
			_label="Re_target"
			_displayName="Retarget All Packages" />
		</Category>
	</Extension>
	
	<Extension path="/MonoDevelop/Ide/MainMenu/Project">
		<SeparatorItem insertafter="MonoDevelop.Ide.Commands.ProjectCommands.AddReference" />
		<CommandItem id="MonoDevelop.PackageManagement.Commands.ManageNuGetPackages" />
		<CommandItem id="MonoDevelop.PackageManagement.Commands.UpdateAllPackagesInSolution" />
		<CommandItem id="MonoDevelop.PackageManagement.Commands.RestorePackages" />
		<SeparatorItem />
	</Extension>
	
	<Extension path="/MonoDevelop/Ide/ContextMenu/ProjectPad">
		<Condition id="ItemType" value="Solution">
			<SeparatorItem
				id="MonoDevelop.PackageManagement.ProjectPad.Separator"
				insertafter="MonoDevelop.Ide.Commands.ProjectCommands.AddReference"
				insertbefore="AddSectionEnd" />
			<CommandItem
				id="MonoDevelop.PackageManagement.Commands.ManageNuGetPackages"
				insertafter="MonoDevelop.PackageManagement.ProjectPad.Separator"
				insertbefore="AddSectionEnd" />
			<CommandItem
				id="MonoDevelop.PackageManagement.Commands.UpdateAllPackagesInSolution"
				insertafter="MonoDevelop.PackageManagement.Commands.ManageNuGetPackages"
				insertbefore="AddSectionEnd" />
			<CommandItem
				id="MonoDevelop.PackageManagement.Commands.RestorePackages"
				insertafter="MonoDevelop.PackageManagement.Commands.UpdateAllPackagesInSolution"
				insertbefore="AddSectionEnd" />
		</Condition>
		<Condition id="ItemType" value="DotNetProject">
			<SeparatorItem
				id="MonoDevelop.PackageManagement.ProjectPad.Separator"
				insertafter="MonoDevelop.Ide.Commands.ProjectCommands.AddReference"
				insertbefore="AddSectionEnd" />
			<CommandItem
				id="MonoDevelop.PackageManagement.Commands.ManageNuGetPackagesInProject"
				insertafter="MonoDevelop.PackageManagement.ProjectPad.Separator"
				insertbefore="AddSectionEnd" />
		</Condition>
		<Condition id="ItemType" value="MonoDevelop.PackageManagement.NodeBuilders.ProjectPackagesFolderNode">
			<CommandItem
				id="MonoDevelop.PackageManagement.Commands.ManageNuGetPackagesInProject" />
			<CommandItem
				id="MonoDevelop.PackageManagement.Commands.PackagesFolderNodeCommands.ReinstallAllPackagesInProject" />
			<CommandItem
				id="MonoDevelop.PackageManagement.Commands.UpdateAllPackagesInProject" />
			<CommandItem
				id="MonoDevelop.PackageManagement.Commands.Restore" />
		</Condition>
	</Extension>

	<Extension path="/MonoDevelop/Ide/ContextMenu/ProjectPad/Add">
		<Condition id="ItemType" value="Project">
			<CommandItem
				id="MonoDevelop.PackageManagement.Commands.AddPackages"
				_label = "NuGet _Packages..."				
				insertafter="MonoDevelop.Ide.Commands.ProjectCommands.AddReference"
				insertbefore="MonoDevelop.WebReferences.WebReferenceCommands.Add" />
		</Condition>
	</Extension>
	
	<Extension path="/MonoDevelop/Core/StockIcons">
		<StockIcon stockid="md-nuget-package" resource="package-48.png" />
		<StockIcon stockid="md-nuget-package-source" resource="package-source-32.png" size="Dnd" />
		<StockIcon stockid="md-prefs-package" resource="prefs-package-16.png" size="Menu" />
		<StockIcon stockid="md-prefs-package-source" resource="prefs-package-source-16.png" size="Menu" />
		<StockIcon stockid="md-package-dependency" resource="nuget-16.png" />
		<StockIcon stockid="md-nuget-warning" resource="nuget-warning-16.png" />
		<StockIcon stockid="md-package-update" resource="package-update-16.png" />
	</Extension>

	<Extension path="/MonoDevelop/Ide/GlobalOptionsDialog">
		<Section id="NuGetPackageManagement" _label="NuGet" insertafter="VersionControl">
			<Section id="NuGetGeneral" _label="General" fill="true" class="MonoDevelop.PackageManagement.Gui.PackageManagementOptionsPanel" icon="md-prefs-package" />
			<Section id="PackageSources" _label="Sources" fill="true" class="MonoDevelop.PackageManagement.Gui.PackageSourcesOptionsPanel" icon="md-prefs-package-source" />
		</Section>
	</Extension>

	<Extension path="/MonoDevelop/Ide/ProjectTemplatePackageInstallers">
		<Class id="NuGet" class="MonoDevelop.PackageManagement.ProjectTemplateNuGetPackageInstaller" />
	</Extension>

	<Extension path="/MonoDevelop/Ide/ItemTemplatePackageInstallers">
		<Class id="NuGet" class="MonoDevelop.PackageManagement.ItemTemplateNuGetPackageInstaller" />
	</Extension>

	<Extension path="/MonoDevelop/Ide/Pads/ProjectPad">
		<NodeBuilder class="MonoDevelop.PackageManagement.NodeBuilders.ProjectPackagesProjectNodeBuilderExtension" />
		<NodeBuilder class="MonoDevelop.PackageManagement.NodeBuilders.ProjectPackagesFolderNodeBuilder" />
		<NodeBuilder class="MonoDevelop.PackageManagement.NodeBuilders.PackageReferenceNodeBuilder" />
		<NodeBuilder class="MonoDevelop.PackageManagement.NodeBuilders.ProjectReferenceNodeBuilderExtension" />
		<NodeBuilder class="MonoDevelop.PackageManagement.NodeBuilders.ProjectReferencesNodeBuilderExtension" />
		<NodeBuilder class="MonoDevelop.PackageManagement.NodeBuilders.ProjectReferencesFromPackagesFolderNodeBuilder" />
	</Extension>

	<ExtensionPoint path = "/MonoDevelop/PackageManagement/ContextMenu/ProjectPad/PackageReference">
		<ExtensionNodeSet id="MonoDevelop.Components.Commands.ItemSet"/>
	</ExtensionPoint>

	<Extension path="/MonoDevelop/PackageManagement/ContextMenu/ProjectPad/PackageReference">
		<CommandItem id="MonoDevelop.PackageManagement.Commands.PackageReferenceNodeCommands.ReinstallPackage" />
		<CommandItem id="MonoDevelop.PackageManagement.Commands.PackageReferenceNodeCommands.UpdatePackage" />
		<CommandItem id="MonoDevelop.Ide.Commands.EditCommands.Delete" />
	</Extension>

	<Extension path="/MonoDevelop/DesignerSupport/PropertyProviders">
		<Class class="MonoDevelop.PackageManagement.NodeBuilders.PackageReferenceNodePropertyProvider" />
	</Extension>

	<Extension path="/MonoDevelop/Ide/StartupHandlers">
		<Class class="MonoDevelop.PackageManagement.Commands.PackageManagementStartupHandler" />
	</Extension>

	<Extension path="/MonoDevelop/Ide/SearchCategories">
		<Class class="MonoDevelop.PackageManagement.SearchPackagesSearchCategory" />
	</Extension>

	<Extension path="/MonoDevelop/ProjectModel/ProjectModelExtensions">
		<Class class="MonoDevelop.PackageManagement.PackageManagementMSBuildExtension" />
		<Class class="MonoDevelop.PackageManagement.PackageManagementCanReferenceProjectExtension" />
		<Class class="MonoDevelop.PackageManagement.PackageManagementSdkProjectExtension" />
	</Extension>
	<!--
	<Extension path="/MonoDevelop/Refactoring/CodeDiagnosticProvider">
		<Class class="MonoDevelop.PackageManagement.Refactoring.PackageCodeDiagnosticProvider" />
	</Extension>-->

	<Extension path="/MonoDevelop/Core/SystemInformation"> 
		<Class class="MonoDevelop.PackageManagement.NuGetSystemInformation" /> 
	</Extension>

	<Extension path="/MonoDevelop/Ide/FileTemplateConditionTypes">
		<FileTemplateConditionType
			name="HasPackageOrReference"
			class="MonoDevelop.PackageManagement.HasNuGetPackageOrReferenceFileTemplateCondition" />
	</Extension>
</ExtensionModel>
